Skip to content

docs: sort the 8.0.0 migration guide, and add the facts from the retired posthog.com Python page - #1245

Open
gewenyu99 wants to merge 30 commits into
eli/v1-capture-dropped-eventfrom
docs/migration-guide-structure
Open

gewenyu99 wants to merge 30 commits into
eli/v1-capture-dropped-eventfrom
docs/migration-guide-structure

Conversation

@gewenyu99

@gewenyu99 gewenyu99 commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor
  • Fill missing docstring details from migration guides and old docs.
  • Make migration guides easier to read.

eli-r-ph and others added 3 commits November 11, 2026 08:59
The migration guide is also published on posthog.com, where the relative
link resolves to a missing page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gewenyu99
gewenyu99 requested a review from a team as a code owner November 12, 2026 16:48
@veria-ai

veria-ai Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

PR overview

No security issues were found in this pull request.

Reviews

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gewenyu99 and others added 4 commits November 12, 2026 12:44
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit f143283)
The posthog.com Python SDK pages redirect to this reference once 8.0.0
ships, so their setup, how-to, and configuration sections now live in
docs/getting-started.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 9db7014)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 0e9f755)
@gewenyu99
gewenyu99 changed the base branch from eli/v1-migration-guide-absolute-link to eli/v1-sync-main-20261111 November 12, 2026 17:44
@gewenyu99 gewenyu99 changed the title docs: sort the 8.0.0 migration guide by when you make each change docs: sort the 8.0.0 migration guide, and move the posthog.com Python page into the reference Nov 12, 2026
@gewenyu99 gewenyu99 changed the title docs: sort the 8.0.0 migration guide, and move the posthog.com Python page into the reference docs: sort the 8.0.0 migration guide, and add the facts from the retired posthog.com Python page Nov 12, 2026
gewenyu99 and others added 2 commits November 12, 2026 13:00
The reference renders each docstring under its entry, per major, so the
tracing, ASGI, keepalive, and AsyncPosthog facts now live there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gewenyu99 gewenyu99 mentioned this pull request Nov 12, 2026
3 tasks done
@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

SDK performance: posthog-python

1 change worth reviewing: 1 observed improvement.

Flags require at least a 5% change in the median and all six pairs agreeing on direction. This is a noise filter, not proof of a performance change or a CI gate.

Test Measurement Before PR With PR Change
Queue an event (4,096-byte payload) Time per operation 116.28 µs/op 110.1 µs/op 5.3% less time
View all results
Test Measurement Before PR With PR Change Assessment
Capture and deliver events (32-byte payload, burst)
Shard: capture
Managed heap after settling — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​; head:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Managed heap after settling — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​; head:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​
Capture and deliver events (32-byte payload, steady)
Shard: capture
Managed heap after settling — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​; head:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Managed heap after settling — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​; head:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​
Queue an event (32-byte payload)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​; head:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​
Queue an event (32-byte payload)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​; head:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​
Queue an event (4,096-byte payload)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​; head:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​
Queue an event (4,096-byte payload)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​; head:​ Background preparation has no public completion boundary before flush; see capture.​drain for full-pipeline allocations.​
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Managed heap after settling — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​; head:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​
Refresh 1,000 flag definitions
Shard: flags-memory
Managed heap after settling — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​; head:​ CPython has no uninstrumented total managed-heap byte counter; tracing would distort this RSS pass.​
Capture and deliver events (32-byte payload, burst)
Shard: capture
Allocated memory per operation 133.69 KiB/op 133.69 KiB/op <0.1% less memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Allocations per operation 1,345.53 count/op 1,345.53 count/op <0.1% fewer Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Time per operation 145.61 µs/op 139.42 µs/op 4.2% less time Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Idle process memory (RSS) 37.59 MiB 37.59 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Observed peak process memory (RSS) 40.02 MiB 40.02 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Process memory after settling (RSS) 40.02 MiB 40.02 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Process CPU time per operation 147.65 µs/op 139.41 µs/op 5.6% less time Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Lifetime peak process memory (RSS) 40.32 MiB 40.32 MiB No observed change Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Allocated memory per operation 185.77 KiB/op 185.76 KiB/op <0.1% less memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Allocations per operation 1,337.57 count/op 1,337.33 count/op <0.1% fewer Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Time per operation 181.16 µs/op 173.84 µs/op 4% less time Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Idle process memory (RSS) 41.26 MiB 41.24 MiB <0.1% less memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Observed peak process memory (RSS) 47.02 MiB 46.99 MiB <0.1% less memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Process memory after settling (RSS) 47.02 MiB 46.99 MiB <0.1% less memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Process CPU time per operation 174.73 µs/op 165.92 µs/op 5% less time Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Lifetime peak process memory (RSS) 51.43 MiB 51.39 MiB <0.1% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Allocated memory per operation 138.75 KiB/op 138.75 KiB/op <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Allocations per operation 1,390.42 count/op 1,390.42 count/op <0.1% more Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Time per operation 154.74 µs/op 154.87 µs/op <0.1% more time Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Idle process memory (RSS) 37.58 MiB 37.48 MiB 0.3% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Observed peak process memory (RSS) 37.74 MiB 37.66 MiB 0.2% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Process memory after settling (RSS) 37.74 MiB 37.66 MiB 0.2% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Process CPU time per operation 151.84 µs/op 151.4 µs/op 0.3% less time Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Lifetime peak process memory (RSS) 40.32 MiB 40.32 MiB No observed change Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Allocated memory per operation 190.93 KiB/op 190.93 KiB/op <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Allocations per operation 1,382.36 count/op 1,382.38 count/op <0.1% more Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Time per operation 177.79 µs/op 182.62 µs/op 2.7% more time Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Idle process memory (RSS) 41.02 MiB 41.04 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Observed peak process memory (RSS) 41.48 MiB 41.5 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Process memory after settling (RSS) 41.06 MiB 41.09 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Process CPU time per operation 170.37 µs/op 175.72 µs/op 3.1% more time Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Lifetime peak process memory (RSS) 41.37 MiB 41.41 MiB <0.1% more memory Not flagged
Queue an event (32-byte payload)
Shard: capture
Caller-thread CPU time per operation 109.31 µs/op 110.03 µs/op 0.7% more time Not flagged
Queue an event (32-byte payload)
Shard: capture
Time per operation 111.82 µs/op 113.67 µs/op 1.7% more time Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Caller-thread CPU time per operation 109.31 µs/op 107.56 µs/op 1.6% less time Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Time per operation 116.28 µs/op 110.1 µs/op 5.3% less time Worth reviewing: observed improvement
Evaluate all 10 flags
Shard: flags-scaling
Allocated memory per operation 200.98 KiB/op 200.98 KiB/op No observed change Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Allocations per operation 2,339.33 count/op 2,339.33 count/op No observed change Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Time per operation 88.52 µs/op 87.79 µs/op 0.8% less time Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Process CPU time per operation 88.52 µs/op 87.79 µs/op 0.8% less time Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Allocated memory per operation 1.93 MiB/op 1.93 MiB/op No observed change Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Allocations per operation 23,013.56 count/op 23,013.56 count/op No observed change Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Time per operation 866.84 µs/op 859.7 µs/op 0.8% less time Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Process CPU time per operation 866.89 µs/op 859.74 µs/op 0.8% less time Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Allocated memory per operation 19.24 MiB/op 19.24 MiB/op No observed change Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Allocations per operation 229,654.94 count/op 229,654.94 count/op No observed change Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Time per operation 8.7 ms/op 8.7 ms/op <0.1% more time Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Process CPU time per operation 8.7 ms/op 8.7 ms/op <0.1% more time Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Idle process memory (RSS) 42.97 MiB 43.07 MiB 0.2% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Observed peak process memory (RSS) 43.33 MiB 43.45 MiB 0.3% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Process memory after settling (RSS) 43.33 MiB 43.45 MiB 0.3% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Lifetime peak process memory (RSS) 44.11 MiB 43.79 MiB 0.7% less memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Idle process memory (RSS) 43.06 MiB 43.17 MiB 0.3% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Observed peak process memory (RSS) 43.06 MiB 43.18 MiB 0.3% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Process memory after settling (RSS) 43.06 MiB 43.18 MiB 0.3% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Lifetime peak process memory (RSS) 43.34 MiB 43.42 MiB 0.2% more memory Not flagged
Evaluate one boolean flag
Shard: flags-single
Allocated memory per operation 15.06 KiB/op 15.06 KiB/op No observed change Not flagged
Evaluate one boolean flag
Shard: flags-single
Allocations per operation 173.76 count/op 173.76 count/op No observed change Not flagged
Evaluate one boolean flag
Shard: flags-single
Time per operation 9.78 µs/op 9.71 µs/op 0.8% less time Not flagged
Evaluate one boolean flag
Shard: flags-single
Process CPU time per operation 9.78 µs/op 9.71 µs/op 0.8% less time Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Allocated memory per operation 23.14 KiB/op 23.14 KiB/op No observed change Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Allocations per operation 270.27 count/op 270.27 count/op No observed change Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Time per operation 12.98 µs/op 13.06 µs/op 0.6% more time Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Process CPU time per operation 12.98 µs/op 13.06 µs/op 0.6% more time Not flagged
Evaluate a flag (early match)
Shard: flags-single
Allocated memory per operation 35.73 KiB/op 35.73 KiB/op No observed change Not flagged
Evaluate a flag (early match)
Shard: flags-single
Allocations per operation 387.27 count/op 387.27 count/op No observed change Not flagged
Evaluate a flag (early match)
Shard: flags-single
Time per operation 18.47 µs/op 18.49 µs/op 0.1% more time Not flagged
Evaluate a flag (early match)
Shard: flags-single
Process CPU time per operation 18.46 µs/op 18.49 µs/op 0.1% more time Not flagged
Evaluate a flag (late match)
Shard: flags-single
Allocated memory per operation 53.61 KiB/op 53.61 KiB/op No observed change Not flagged
Evaluate a flag (late match)
Shard: flags-single
Allocations per operation 576.27 count/op 576.27 count/op No observed change Not flagged
Evaluate a flag (late match)
Shard: flags-single
Time per operation 26.31 µs/op 26.19 µs/op 0.5% less time Not flagged
Evaluate a flag (late match)
Shard: flags-single
Process CPU time per operation 26.31 µs/op 26.19 µs/op 0.5% less time Not flagged
Evaluate a flag (no match)
Shard: flags-single
Allocated memory per operation 52.16 KiB/op 52.16 KiB/op No observed change Not flagged
Evaluate a flag (no match)
Shard: flags-single
Allocations per operation 556.77 count/op 556.77 count/op No observed change Not flagged
Evaluate a flag (no match)
Shard: flags-single
Time per operation 25.06 µs/op 24.97 µs/op 0.4% less time Not flagged
Evaluate a flag (no match)
Shard: flags-single
Process CPU time per operation 25.06 µs/op 24.97 µs/op 0.4% less time Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Allocated memory per operation 17.85 KiB/op 17.85 KiB/op No observed change Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Allocations per operation 198.27 count/op 198.27 count/op No observed change Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Time per operation 10.76 µs/op 10.8 µs/op 0.4% more time Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Process CPU time per operation 10.76 µs/op 10.8 µs/op 0.4% more time Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Allocated memory per operation 19.24 KiB/op 19.24 KiB/op No observed change Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Allocations per operation 210.77 count/op 210.77 count/op No observed change Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Time per operation 11.49 µs/op 11.47 µs/op 0.1% less time Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Process CPU time per operation 11.49 µs/op 11.47 µs/op 0.1% less time Not flagged
Evaluate a rollout flag
Shard: flags-single
Allocated memory per operation 14.05 KiB/op 14.05 KiB/op No observed change Not flagged
Evaluate a rollout flag
Shard: flags-single
Allocations per operation 160.76 count/op 160.76 count/op No observed change Not flagged
Evaluate a rollout flag
Shard: flags-single
Time per operation 9.17 µs/op 9.12 µs/op 0.6% less time Not flagged
Evaluate a rollout flag
Shard: flags-single
Process CPU time per operation 9.17 µs/op 9.12 µs/op 0.6% less time Not flagged
Evaluate a multivariate flag
Shard: flags-single
Allocated memory per operation 15.22 KiB/op 15.22 KiB/op No observed change Not flagged
Evaluate a multivariate flag
Shard: flags-single
Allocations per operation 177.77 count/op 177.77 count/op No observed change Not flagged
Evaluate a multivariate flag
Shard: flags-single
Time per operation 10.05 µs/op 10.07 µs/op 0.2% more time Not flagged
Evaluate a multivariate flag
Shard: flags-single
Process CPU time per operation 10.05 µs/op 10.07 µs/op 0.2% more time Not flagged

Values are medians of paired measurements. Not flagged does not mean unchanged. Unavailable means a measurement could not be provided, not zero. Estimated allocation measurements retain their instrumentation uncertainty. RSS measures the whole process, not just SDK allocations; observed peaks are sampled checkpoints. Paired ranges in the diagnostics describe variability, not confidence intervals.

Each shard uses its own runner; compare Before PR against With PR within a row, not across shards.

Compared ad010c5668d5cc62a81169d805d4d631249b2e84 → 5b249fb75375888ad74c5a15f1829d7523f2b8f1.

Full report and diagnostics

102 metric rows; 102 rows shown in all results. Omitted or shortened data remain in comparison.json, including per-runner environments, resource limits, measurement methods, samples and checkpoints.

@gewenyu99
gewenyu99 marked this pull request as ready for review November 12, 2026 18:49
Base automatically changed from eli/v1-sync-main-20261111 to v1 November 12, 2026 19:03

@dustinbyrne dustinbyrne left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The migration restructuring and reference-title change look sound. I found no SDK runtime changes; two optional documentation clarifications are noted inline.

AI-assisted review.

Comment thread posthog/client.py Resolved
Comment thread docs/migration-7.x-to-8.0.md Resolved
eli-r-ph and others added 8 commits November 12, 2026 14:54
Keeps both new generator functions (migration_page, getting_started) and
their tests. The guide keeps this branch's text; its Celery eager line
already carries #1232's wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rted guide

The sorted 8.0.0 guide dropped facts the v1 guide states: the self-hosted
capture v1 route check, the 404 hint, the 400 duplicate_event_uuid on older
PostHog, the legacy path removal, and NaN as null since 7.75.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rted guide

Identify-style events now default process_person_profile to true unless
the call sets it or the SDK generated the distinct ID, so layered false no
longer reaches them. Replaces the old reach rules and opt-in sample, and
updates the checklist row, precedence step 1 and the before_send section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
start_span evicts spans older than max_span_age first and returns an
unrecorded span only if still at max_live_spans. A full span keeps the
exception message in its status and loses only the type and stack trace.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated with bin/docs_scripts/generate_markdown.py --major 8. The
migration page now carries the sorted guide, which it had not before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…onless

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he option

Only capture and capture_ai take event properties. The properties of set,
set_once and group_identify are person and group properties.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@eli-r-ph
eli-r-ph changed the base branch from v1 to eli/v1-capture-dropped-event November 13, 2026 00:57
eli-r-ph and others added 2 commits November 12, 2026 16:58
…-structure

Stacks the sorted guide on the identify-style person processing default and
the CaptureDroppedEvent change. The guide keeps the sorted text, which already
describes the default. References regenerated.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…he guide

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
eli-r-ph and others added 3 commits November 12, 2026 18:05
Compression formats including zstd, the proxy pass-through rule, and that a
`$set` in a global or context layer reaches every event.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…es and semicolons

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gewenyu99 and others added 3 commits November 13, 2026 12:37
The 8.x page is titled "PostHog Python SDK 8.x" before and after the release.
Regenerating also picks up the self-hosted paragraph the migration guide's source
already dropped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…identify

"so set the option there" read as setting it in properties, where the SDK
treats it as a person property. set, set_once, and group_identify take
options, so the guide now names them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vincent ruled out self-hosted framing in the guides, and the endpoint and 404 sentences read as self-host framing. The retry tables and the proxy notes stay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gewenyu99 added a commit that referenced this pull request Nov 13, 2026
…ges (#1251)

* docs: publish the posthog-python 8.x reference and migration guide pages

Adds references/posthog-python-8.md and references/posthog-python-migration.md as
the 8.0.0 release will write them, so the Strapi sync puts them on posthog.com
before 8.0.0 ships. Both come from running bin/docs on docs/migration-guide-structure
(#1245) with posthog/version.py at 8.0.0, the version the release sets before it
generates. The generator on main writes only the 7.x page and the reference page,
and skips the migration page without docs/migration-*.md, so neither file is
rewritten before the release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: regenerate the migration page from the guide's latest fix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: regenerate the migration page without the 404 hint and self-hosted lines

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants